-- CALC_CAN_SHOW_CHESS

-- 能否出现棋子
return function(element)
    -- 物品和对应的棋子
    local map = {
        -- 摩菲的手稿 （皇后、塔楼、主教）
        [8195] = {100033, 100034, 100035},
        -- 斯坦尼茨的手稿（皇后、塔楼、骑士）
        [8196] = {100033, 100034, 100036},
        -- 拉斯克的手稿（皇后、塔楼、禁卫军）
        [8197] = {100033, 100034, 100037},
        -- 卡帕布兰卡的手稿（皇后、主教、骑士）
        [8198] = {100033, 100035, 100036},
        -- 阿廖欣的手稿（皇后、主教、禁卫军）
        [8199] = {100033, 100035, 100037},
        -- 尤伟的手稿（皇后、主教、禁卫军）
        [8200] = {100033, 100035, 100037},
    };

    local itemId;
    local elements = {};
    for itemId, _ in pairs(map) do
        if EquipM.hasEquipment(itemId) then
            -- 根据玩家装备来抽取
            elements = map[itemId];
            break;
        end
    end

    -- 如果没有道具，抽一组，抽一次即可
    if #elements <= 0 then
        local fetchChessItem = ME.user.dbase:queryTemp("fetch_chess_item");
        if not fetchChessItem then
            -- 客户端下标多1
            local keys = table.keys(map);
            table.sort(keys);
            local index = DungeonM.getRandSeed("FETCH_SHOW_CHESS") % #keys + 1;
            local fetchId = keys[index];
            ME.user.dbase:setTemp("fetch_chess_item", fetchId);
            elements = map[fetchId];
        else
            elements = map[fetchChessItem];
        end
    end

    return table.indexOf(elements, element) >= 0;
end